package com.tcoiss.webservice.utils;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;

import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;



/**
 * 编码与解码
 * @author HANWENGANG
 *
 */
public class EncodeAndDecode {
    private static final Logger logger = LoggerFactory.getLogger(EncodeAndDecode.class);
    /**
     * 编码
     * @param parameter
     * @param coded
     * @return
     */
    public static String encode(String parameter,String coded){//parameter---字符串参数，coded---编码格式例如utf-8
        logger.info("--EncodeAndDecode--encode--statr--parameter="+parameter+"--coded="+coded);
        if(StringUtils.isNotBlank(parameter)&&StringUtils.isNotBlank(coded)){
            try {
                parameter = URLEncoder.encode(parameter,coded);
            } catch (UnsupportedEncodingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                logger.error("--EncodeAndDecode--encode--Exception--"+e);
            }
            logger.info("--EncodeAndDecode--encode--end");
        }
        return parameter;
    }
    /**
     * 解码
     */
    public static String decode(String parameter,String coded){//parameter---编码后的字符串参数，coded---编码格式例如utf-8
        logger.info("--EncodeAndDecode--decode--statr--parameter="+parameter+"--coded="+coded);
        if(StringUtils.isNotBlank(parameter)&&StringUtils.isNotBlank(coded)){
            try {
                parameter = URLDecoder.decode(parameter,coded);
            } catch (UnsupportedEncodingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                logger.error("--EncodeAndDecode--decode--Exception--"+e);
            }
            logger.info("--EncodeAndDecode--decode--end");
        }
        return parameter;

    }
    /*public static void main(String[] args)
    {
        Map<String,Object> map = new HashMap<>();
        map.put("key",1);
        map.put("filter","updateDte BT 2021-05-11");
        String param = encode(map.toString(),"utf-8");
        System.out.println(param);
    }*/
}
